package com.test;

import java.util.HashMap;
import java.util.Map;

public class 两数之和 {

    /**
     * 暴力破解法
     *
     * @param nums
     * @param target
     * @return
     */
//    public int[] twoSum(int[] nums, int target) {
//        int length = nums.length;
//        for (int i=0;i<length-1;i++){
//
//            for (int j=i+1;j<length;j++){
//                if (nums[i]+nums[j]==target){
//                    return new int[]{i,j};
//                }
//            }
//        }
//
//        return null;
//    }

    /**
     * 一次性哈希遍历
     * @param nums
     * @param target
     * @return
     */
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> map=new HashMap<Integer, Integer>();

        for (int i=0;i<nums.length;i++){
            int thatNums=target-nums[i];
            if (map.containsKey(thatNums) ){
                return new int[]{map.get(thatNums),i};
            }
            map.put(nums[i],i);
        }
        return null;
    }


}
